package com.shop.shopserver.handler;

import org.springframework.stereotype.Component;

import javax.websocket.Session;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@Component
public class WebSocketSessionHandler {
    private static final
    Set<Session> sessions = Collections.synchronizedSet(new HashSet<>());

    // 将新的会话添加到集合中
    public static void addSession(Session session) {
        sessions.add(session);
    }

    // 将会话从集合中移除
    public static void removeSession(Session session) {
        sessions.remove(session);
    }

    // 遍历所有会话，并对每个会话执行给定的操作
    public static void forEachSession(SessionConsumer consumer) {
        for (Session session : sessions) {
            consumer.accept(session);
        }
    }

    // 自定义的函数式接口，用于定义对会话执行的操作
    @FunctionalInterface
    public interface SessionConsumer {
        void accept(Session session);
    }

}
